package com.lanchetech.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 商品spu
 */
@ApiModel(value = "商品spu")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Spu implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 后台类目id
     */
    @ApiModelProperty(value = "后台类目id")
    private Long categoryId;

    /**
     * 品牌id
     */
    @ApiModelProperty(value = "品牌id")
    private Long brandId;

    /**
     * 商品内容, 只能是图片, 逗号分隔
     */
    @ApiModelProperty(value = "商品内容, 只能是图片, 逗号分隔")
    private String content;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    private String name;

    /**
     * 商品副标题
     */
    @ApiModelProperty(value = "商品副标题")
    private String description;

    /**
     * 主图链接
     */
    @ApiModelProperty(value = "主图链接")
    private String mainImage;

    /**
     * 轮播图片链接列表,逗号分隔
     */
    @ApiModelProperty(value = "轮播图片链接列表,逗号分隔")
    private String imageList;

    /**
     * 是否为虚拟商品 0 不是 1 是
     */
    @ApiModelProperty(value = "是否为虚拟商品 0 不是 1 是")
    private Byte isVirtual;

    /**
     * 运费模板id
     */
    @ApiModelProperty(value = "运费模板id")
    private Long freightId;

    /**
     * 商品原价，划线价
     */
    @ApiModelProperty(value = "商品原价，划线价")
    private BigDecimal originalPrice;

    /**
     * 最高价格
     */
    @ApiModelProperty(value = "最高价格")
    private BigDecimal maxPrice;

    /**
     * 最低价格
     */
    @ApiModelProperty(value = "最低价格")
    private BigDecimal minPrice;

    /**
     * 销量
     */
    @ApiModelProperty(value = "销量")
    private Integer sales;

    /**
     * 商品标签列表
     */
    @ApiModelProperty(value = "商品标签列表")
    private String tagList;

    /**
     * 拓展属性JSON
     */
    @ApiModelProperty(value = "拓展属性JSON")
    private String feature;

    /**
     * 上下架 0 上架 1 下架（隐藏）
     */
    @ApiModelProperty(value = "上下架 0 上架 1 下架（隐藏）2 ")
    private Byte hidden;

    /**
     * 排序降序
     */
    @ApiModelProperty(value = "排序降序")
    private Integer sorts;

    /**
     * 删除 0 未删除 1 已删除
     */
    @ApiModelProperty(value = "删除 0 未删除 1 已删除")
    private Byte deleted;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updatedAt;

    /**
     * 视频链接
     */
    @ApiModelProperty(value = "视频链接")
    private String video;

    /**
     * 商品类型
     * 0:免单
     * 1:商家(门店)
     * 2:兑换
     * 3:普通(常规)
     * 4:抢购
     * 5:百亿补贴
     */
    @ApiModelProperty(value = "0:免单  1:商家(门店)  2:兑换  3:普通(常规)  4:抢购  5:百亿补贴")
    private Byte type;

    /**
     * 商家商品类型 0 预约项目 1 体验价 2 活动报名
     */
    @ApiModelProperty(value = "商家商品类型 0 预约项目 1 体验价 2 活动报名")
    private Byte shopSpuType;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private BigDecimal latitude;

    /**
     * 商家编号
     */
    @ApiModelProperty(value = "商家编号")
    private Long shopId;

    /**
     * 5星好评数量
     */
    @ApiModelProperty(value = "5星好评数量")
    private Integer fiveStar;

    /**
     * 一级行业类目id
     */
    @ApiModelProperty(value = "一级行业类目id")
    private Long industryFirstId;

    /**
     * 二级行业类目id
     */
    @ApiModelProperty(value = "二级行业类目id")
    private Long industrySecondId;

    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long tenantId;

    /**
     * 一级后台类目
     */
    @ApiModelProperty(value = "一级后台类目")
    private Long rid;

    /**
     * 主播佣金比例
     */
    @ApiModelProperty(value = "主播佣金比例")
    private BigDecimal anchorProportion;

    /**
     * 审核状态 0 待审核 1 审核通过 2 审核驳回
     */
    @ApiModelProperty(value = "审核状态 0 待审核 1 审核通过 2 审核驳回")
    private Byte auditStatus;

    /**
     * 审核回复
     */
    @ApiModelProperty(value = "审核回复")
    private String auditMessage;

    /**
     * 一级商家类目id
     */
    @ApiModelProperty(value = "一级商家类目id")
    private Long scFirstId;

    /**
     * 二级商家类目id
     */
    @ApiModelProperty(value = "二级商家类目id")
    private Long scSecondId;

    /**
     * 三级商家类目id
     */
    @ApiModelProperty(value = "三级商家类目id")
    private Long scThirdId;

    /**
     * 限购数量 0 不限购 大于0 为限购次数
     */
    @ApiModelProperty(value = "限购数量 0 不限购 大于0 为限购次数")
    private Long limitCount;

    /**
     * 是否显示在秒杀区外 0 不显示 1 显示
     */
    @ApiModelProperty(value = "是否显示在秒杀区外 0 不显示 1 显示")
    private Byte flashHidden;

    private boolean whetherCard;

    private Boolean preferredImage;

    private static final long serialVersionUID = 1L;
}